package br.fafica.poo2.rightcode.factory;

import br.fafica.poo2.rightcode.aluno.IRepositorioAluno;
import br.fafica.poo2.rightcode.aluno.RepositorioAlunoArrayList;
import br.fafica.poo2.rightcode.aluno.RepositorioAlunoFila;
import br.fafica.poo2.rightcode.disciplina.IRepositorioDisciplina;
import br.fafica.poo2.rightcode.disciplina.RepositorioDisciplinaArrayList;
import br.fafica.poo2.rightcode.disciplina.RepositorioDisciplinaPilha;
import br.fafica.poo2.rightcode.filtro.IRepositorioFiltro;
import br.fafica.poo2.rightcode.filtro.RepositorioFiltroArrayList;
import br.fafica.poo2.rightcode.filtro.RepositorioFiltroSet;
import br.fafica.poo2.rightcode.instituicao.IRepositorioInstituicao;
import br.fafica.poo2.rightcode.instituicao.RepositorioInstituicaoArrayList;
import br.fafica.poo2.rightcode.usuario.IRepositorioUsuario;
import br.fafica.poo2.rightcode.usuario.RepositorioUsuarioArrayList;
import br.fafica.poo2.rightcode.usuario.RepositorioUsuarioMap;

public class FactoryCollection implements IFactory{

	private IRepositorioUsuario repositorioUsuario;
	private IRepositorioDisciplina repositorioDisciplina;
	private IRepositorioAluno repositorioAluno;
	private IRepositorioFiltro repositorioFiltro;
	private IRepositorioInstituicao repositorioInstituicao;

	
	@Override
	public IRepositorioUsuario getRepositorioUsuario() {
		if(this.repositorioUsuario == null)
			this.repositorioUsuario=new RepositorioUsuarioMap();
		return this.repositorioUsuario;
	}

	@Override
	public IRepositorioDisciplina getRepositorioDisciplina() {
		if(this.repositorioDisciplina == null)
			this.repositorioDisciplina=new RepositorioDisciplinaPilha();
		return this.repositorioDisciplina;
	}

	@Override
	public IRepositorioAluno getRepositorioAluno() {
		if(this.repositorioAluno == null)
			this.repositorioAluno=new RepositorioAlunoFila();
		return this.repositorioAluno;
	}

	@Override
	public IRepositorioFiltro getRepositorioFiltro() {
		if(this.repositorioFiltro == null)
			this.repositorioFiltro=new RepositorioFiltroSet();
		return this.repositorioFiltro;
	}

	@Override
	public IRepositorioInstituicao getRepositorioInstituicao() {
		if(this.repositorioInstituicao == null)
			this.repositorioInstituicao =new RepositorioInstituicaoArrayList();
		return this.repositorioInstituicao;
	}

}
